
双指针处理
分别用两个指针指向数组的开头,比较两个指针元素的大小，哪个小哪个后移，两个指针总移动步长到一定长度，按照情况返回值


需要注意的是，双指针情况比较多，要分别处理
1.某个数组为空
2.某个数组元素相对另一个太少了



复杂度是n/2

double mid(vector<double > vec1, vector<double>  vec2) {

    int i = 0;
    int j = 0;

    int len = vec1.size() + vec2.size();
    int left = (len -1) / 2;
    int cnt = 0;
    while ( i< vec1.size()  && j < vec2.size()  ) {
        
        if (vec1[i] < vec2[j]) {
            i++;
        }
        else {
            j++;
        }

        cnt++;

        if ( cnt == left) {
            if (len % 2 == 0) {
                return (vec1[i] + vec2[j]) / 2;
            }
            else {

                if (vec1[i] < vec2[j]) return vec1[i];
                return vec2[j];
            }
        }
    
    }


    if (i<vec1.size()) {
    
        for (i = i + 1; i < vec1.size(); i++) {
            
            cnt++;
            if (cnt == left) {
                if (len % 2 == 0) {
                    return (vec1[i] + vec1[i+1]) / 2;
                }
                else {

                    return vec1[i];
                }
            }

        }

    }
    if (j <vec2.size()) {

        for ( j = j+1; j < vec2.size(); j++) {
            cnt++;
            if (cnt == left) {
                if (len / 2 == 0) {
                    return (vec1[j] + vec1[j + 1]) / 2;
                }
                else {

                    return vec1[j];
                }
            }

        }

    }

}

